package com.yidu.hbats.action.rival;

import com.sun.prism.impl.BaseMesh;
import com.yidu.hbats.model.AtsRival;
import com.yidu.hbats.model.AtsRivalResult;
import com.yidu.hbats.service.rival.AtsRivalResultService;
import com.yidu.hbats.service.rival.AtsRivalService;
import com.yidu.utils.Message;
import com.yidu.utils.Page;
import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.ResponseBody;

import javax.annotation.Resource;
import java.util.Date;
import java.util.HashMap;
import java.util.List;
import java.util.Map;

/**
 * @program: 272
 * @description: 主要对手信息
 * @author: 陈啸
 * @create: 2019-11-12 18:39
 */
@Controller
@RequestMapping("/atsRival")
public class AtsRivalController {
    @Resource
    private AtsRivalService atsRivalService;
    @Resource
    private AtsRivalResultService atsRivalResultService;

    /**
     * 查询全部
     * @param atsRival
     * @param page 页数
     * @return 数据
     */
    @ResponseBody
    @RequestMapping("findAll")
        public Map findAll(AtsRival atsRival, Page page){
            Map<String,Object> map = new HashMap();
            List<AtsRival> list = atsRivalService.selectAll(atsRival,page);
            int count = atsRivalService.count(atsRival);
            map.put("code",0);
            map.put("msg","");
            map.put("count",count);
            map.put("data",list);
            return map;
    }

    /**
     * 新增和修改
     * @param atsRival
     * @return 结果
     */
    @ResponseBody
    @RequestMapping("insertOrUpdate")
    public Message insertOrUpdate(AtsRival atsRival){
        //创建Message对象
        Message message = new Message();
        //创建AtsRivalResult对象
        AtsRivalResult atsRivalResult = new AtsRivalResult();
        //变量
        int cunt = 0;
        //判断id是否为空
        if(atsRival.getRivId() !=null && !"".equals(atsRival.getRivId())){
            //保存到修改的方法
            cunt =atsRivalService.updateByPrimaryKey(atsRival);
            //对手信息id
            atsRivalResult.setRivId(atsRival.getRivId());
            //对手信息姓名
            atsRivalResult.setRivName(atsRival.getRivName());
            //保存到修改的方法2
            atsRivalResultService.updateTwo(atsRivalResult);
        }else{
            //时间
            atsRival.setCreatTime(new Date());
            //状态
            atsRival.setIsva(1);
            //保存到新增方法
            cunt = atsRivalService.insert(atsRival);
        }
        message.setNum(1);
        //判断是否成功
        if( cunt >0) {
            message.setMsg("编辑成功");
        }else{
            message.setMsg("编辑失败");
        }
        return  message;
    }

    /**
     * 逻辑删除
     * @param rivId
     * @return 返回的结果
     */
    @ResponseBody
    @RequestMapping("updateDelete")
    public Message updateDelete(Integer rivId){
        AtsRival atsRival = new AtsRival();
        atsRival.setRivId(rivId);
        atsRival.setIsva(0);
        atsRivalService.updateDelete(atsRival);
        AtsRivalResult atsRivalResult = new AtsRivalResult();
        atsRivalResult.setRivId(rivId);
        atsRivalResult.setIsva(0);
        atsRivalResultService.updateDelete(atsRivalResult);
        Message message = new Message();
        message.setNum(1);
        message.setMsg("删除成功");
        return message;
    }

    /**
     * 批量删除
     * @param ids
     * @return 返回的结果
     */
    @ResponseBody
    @RequestMapping("batchDelete")
    public Message batchDelete(String ids){
        //工具类Message
        Message message = new Message();
        //id是否为空
        if(ids == "" || ids == null){
            message.setNum(0);
            message.setMsg("删除失败");
            //返回的结果
            return message;
        }else {
            //获取批量删除的id
            String[] idss = ids.split(",");
            for (int i = 0; i < idss.length; i++) {
                //创建AtsRival对象
                AtsRival atsRival = new AtsRival();
                //保存并转换id类型
                atsRival.setRivId(Integer.valueOf(idss[i]));
                //设置状态的值
                atsRival.setIsva(0);
                //保存到删改的方法
                atsRivalService.updateDelete(atsRival);
                //创建AtsRivalResult对象
                AtsRivalResult atsRivalResult = new AtsRivalResult();
                //传入id
                atsRivalResult.setRivId(Integer.valueOf(idss[i]));
                //设置状态值
                atsRivalResult.setIsva(0);
                //保存到删除方法
                atsRivalResultService.updateDelete(atsRivalResult);
            }
            message.setNum(1);
            message.setMsg("删除成功");
            return message;
        }
    }

    /**
     * 根据ID查询，修改的显示
     * @param rid
     * @return 数据
     */
    @ResponseBody
    @RequestMapping("updateQuery")
    public Map<String,Object> updateQuery(Integer rid){
        AtsRival atsRival = atsRivalService.updateQuery(rid);
        Map<String,Object> map = new HashMap<>();
        map.put("data",atsRival);
        map.put("stat",1);
        return map;
    }
    /**
     * 查询所有，用于下拉框的数据显示
     * @param atsRival
     * @return 数据
     */
    @ResponseBody
    @RequestMapping("querAll")
    public List<AtsRival> queryAll(AtsRival atsRival){
        List<AtsRival> ats = atsRivalService.querAll(atsRival);
        return ats;
    }
}
